package com.kerrykidz.system.dao.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.system.dao.model.CourseEntity;
import com.rdp.framework.exception.RDPException;

@Repository
public interface CourseEntityMapper {
	/**
	 * 获取所有购买课程
	 * @return
	 * @throws Exception
	 * @date: 2014年10月22日
	 */
	public List<CourseEntity> getNewCourese(@Param("date")String date)throws RDPException;
	public List<Map<String,Object>> getNewCoureseK3(@Param("date")String date)throws RDPException;
	
	/**
	 * 获取所有签到课程
	 * @return
	 * @throws Exception
	 * @date: 2014年10月22日
	 */
	public List<CourseEntity> getSignCourese(@Param("date")String date)throws RDPException;
	public List<Map<String,Object>> getSignCoureseK3(@Param("date")String date)throws RDPException;
	/**
	 * 获取所有过期课程
	 * @return
	 * @throws Exception
	 * @date: 2014年10月22日
	 */
	public List<CourseEntity> getExceedCourese(@Param("date")String date)throws RDPException;
	public List<Map<String,Object>> getExceedCoureseK3(@Param("date")String date)throws RDPException;
	
	/**
	 * 商品销售
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public List<CourseEntity> getSaleCommodity(@Param("date")String date)throws RDPException;
	
	/**
	 * 商品销售  银行卡
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月3日
	 */
	public List<Map<String,Object>> getSaleCommodityK3Card(@Param("date")String date)throws RDPException;
	/**
	 * 商品销售  现金
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月3日
	 */
	public List<Map<String,Object>> getSaleCommodityK3Cash(@Param("date")String date)throws RDPException;
	
	/**
	 * 商品退货
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public List<CourseEntity> getReturnCommodity(@Param("date")String date)throws RDPException;
	/**
	 * 商品退货   现金+银行卡
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月3日
	 */
	public List<Map<String,Object>>  getReturnCommodityK3Cash(@Param("date")String date)throws RDPException;
	public List<Map<String,Object>>  getReturnCommodityK3Card(@Param("date")String date)throws RDPException;
	
	/**
	 * 获取     指定日期下       所有使用过的礼券
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public List<CourseEntity> getUseCoupon(@Param("date")String date)throws RDPException;
	
	/**
	 * 根据  订单编号  商品编号 查询价格
	 * @param orderList  订单id
	 * couponList 商品编号
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public List<CourseEntity> getUseCouponPrice(@Param("orderList")List<String> orderList ,@Param("spList") List<String> spList)throws RDPException;
	public List<Map<String,Object>> getUseCouponPriceK3(@Param("orderList")List<String> orderList ,@Param("spList") List<String> spList)throws RDPException;
	/**
	 * 获取所有购买的礼券  30 天之内的礼券
	 * @param date
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public List<CourseEntity>  getOverdueCoupon(@Param("date")String date)throws RDPException;
	public Map<String,Object>  getOverdueCouponK3(@Param("prdId")String prdId,@Param("orderId")String orderId ,@Param("giftId") String giftId)throws RDPException;
	
	/**
	 * 验证礼券是否使用   30 天  内
	 * @param coupon
	 * @param date
	 * @return 返回结果 为使用  否则为未使用
	 * @throws RDPException
	 * @date: 2014年10月24日
	 */
	public String  isOverdueCoupon(@Param("coupon")String coupon,@Param("date")String date)throws RDPException;
	
	/**
	 * 获取指定商品Id
	 * @param prdId 商品ID
	 * @param orderId 订单ID
	 * @param prdId 礼券编号
	 * @return
	 * @throws RDPException
	 * @date: 2014年10月27日
	 */
	public Double getOverdueCouponPrice(@Param("prdId")String prdId,@Param("orderId")String orderId ,@Param("giftId") String giftId)throws RDPException;
	
	/**
	 * 修改过期课程
	 * @param id
	 * @throws RDPException
	 * @date: 2014年11月12日
	 */
	public void updateCusMenuClassById(@Param("id")String id)throws RDPException;
	/**
	 * 获取所有过期的课程
	 * @param id
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月12日
	 */
	public List<Map<String,Object>> getOverCourse()throws RDPException;
}